import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import org.w3c.dom.ls.LSOutput;

import java.util.Objects;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86132
 * Date: 2022-03-25
 * Time: 23:04
 */
class Person{
     public String ID;
     public Person(String ID){
          this.ID=ID;
     }
     @Override
     public boolean equals(Object o) {
          if (this == o) return true;
          if (o == null || getClass() != o.getClass()) return false;
          Person person = (Person) o;
          return Objects.equals(ID, person.ID);
     }
     @Override
     public int hashCode() {
          return Objects.hash(ID);
     }
     @Override
     public String toString() {
          return "Person{" +
                  "ID='" + ID + '\'' +
                  '}';
     }
}

public class HashBuck2<K,V> {
     static class Node<K,V>{
          public K key;
          public V val;
          public Node<K,V> next;
          public Node(K key,V val){
               this.val=val;
               this.key=key;
          }
     }
     public Node<K,V> []array=(Node<K,V> [])new Node[10];
     public int usedSize;
     public void put(K key,V val){
          int hash=key.hashCode();
          int index=hash%array.length;
          Node<K,V> cur=array[index];
          while(cur!=null){
               if(cur.key.equals(key)){
                    cur.val=val;
                    return;
               }
               cur=cur.next;
          }
          Node<K,V> node=new Node<>(key,val);
          node.next=array[index];
          array[index]=node;
          this.usedSize++;
     }

     public V get(K key){
          int hash=key.hashCode();
          int index=hash%array.length;
          Node<K,V> cur=array[index];
          while(cur!=null){
               if(cur.key.equals(key)){
                    return cur.val;
               }
               cur=cur.next;
          }
          return null;
     }


     public static void main(String[] args) {
          Person person1=new Person("123");
          Person person2=new Person("123");
          System.out.println(person1.hashCode());
          System.out.println(person2.hashCode());
     }
}
